// interface 接口继承
// interface 定义函数类型
// 不能多属性 也不能少属性
// 重名 重合属性
// 任意key
// readonly

interface C {
  xxxxx: string
}

interface Axxsxs extends C {
  name: string
  age: number
  // [propName:string]: string
  readonly id: number
  readonly cb: () => boolean
}

let a:Axxsxs = {
  name: '123',
  age: 9,
  id: 1,
  xxxxx: "xxx",
  cb: () => { return false }
  // sex: '123',
  // ccc: '123'
}

// a.cb = () => { return true }     // readonly修饰符  限制之后，不可修改

// interface 定义函数类型
interface Fn {
  (name: string): number[]
}

const fn: Fn = (name:string) => {
  return [1, 2, 3]
}

console.log(a)
